package cn.zxyh.service;

import cn.zxyh.pojo.Bill;
import cn.zxyh.pojo.User;

import java.util.List;

/**
 * 账单信息的Service层的业务逻辑操作
 * By Albert 2020-0525
 */
public interface BillService {
    /**
     * 添加账单
     *
     * @param bill
     */
    void addBill(Bill bill);

    /**
     * 管理员有权限查看全部的账单信息，根据登陆用户的状态进行判定
     *
     * @return
     */
    List<Bill> findBillAll();

    /**
     * 普通用户查询自己的账单信息
     *
     * @param user
     * @return
     */
    List<Bill> findByUser(User user,int type);

    /**
     * 查询一条账单记录
     *
     * @param id
     * @return bill
     */
    Bill findById(int id);

    /**
     * 根据账单ID更新账单的状态，从未缴费到已缴费
     *
     * @param billId
     * @return
     */
    int payBill(int billId, String password);
}
